﻿using System;
using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Refract.Navigation;

namespace Refract.Tests
{
    [TestClass]
    public class PageItemListFixture
    {
        private PageItemList _list = null;

        [TestMethod]
        public void PageItemList_is_properly_constructed()
        {
            
            Assert.IsNotNull(_list);

        }

        [TestMethod]
        public void PageItemList_adds_an_item()
        {
            const string PageItemName = "PageItem";
            PageItem item = new PageItem(PageItemName, typeof(TestViewModel));
            
            _list.Add(item);
            Assert.AreEqual(_list[PageItemName], item);

        }

        [TestMethod]
        public void PageItemList_gets_an_item()
        {
            const string PageItemName = "PageItem";
            PageItem item = new PageItem(PageItemName, typeof(TestViewModel));
            
            _list.Add(item);
            PageItem retrievedPageItem = _list.Get(PageItemName);

            Assert.AreEqual(item, retrievedPageItem);
        }

        [TestInitialize]
        public void SetupTest()
        {
            _list = new PageItemList();
        }
    }
}